package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc AddTargetObjEvaObjTargetCycleTargetComReqDto
 * @使用场景
 */
@Data
public class AddTargetObjEvaObjTargetCycleTargetComReqDto
  extends BaseDto
  implements Serializable {

  @ApiModelProperty("被评对象目标周期目标列表")
  private List<EvaObjTargetCycleTargetSetDto> evaObjTargetCycleTargetList = new ArrayList<>();

  /**
   * 冗余单位
   */
  @NotNull(message = "冗余单位不能为空")
  @ApiModelProperty("冗余单位")
  private String unit;

  /**
   * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
   */
  @NotNull(message = "冗余指标业务类型不能为空")
  @ApiModelProperty("冗余指标业务类型")
  private String targetValueType;

  /**
   * 目标值计算方式 INITIAL_VALUE_COUNT:按起始值计算 TARGET_VALUE_COUNT:按目标值计算
   */
  @NotNull(message = "目标值计算方式不能为空")
  @ApiModelProperty("目标值计算方式")
  private String targetValueCountType;

  /**
   * 运算符号 GREATER_THAN:大于 LESS_THAN:小于 EQUAL:等于 GREATER_EQUAL_THAN:大于等于 LESS_EQUAL_THAN:小于等于 ALL_NOT_EQUAL:均不低于 ALL_NOT_GREATER:均不高于
   */
  @NotNull(message = "运算符号不能为空")
  @ApiModelProperty("运算符号")
  private String logicalOperator;

  /**
   * 是否引用实际值 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否引用实际值")
  private String isQuoteactualValue;

  /**
   * 是否引用达成度 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否引用达成度")
  private String isQuoteReach;

  /**
   * 是否引用资料 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否引用资料")
  private String isQuoteData;

  /**
   * 是否被引用 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否被引用不能为空")
  @ApiModelProperty("是否被引用")
  private String isBeQuote;

  /**
   * 是否已引用 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否已引用不能为空")
  @ApiModelProperty("是否已引用")
  private String isAlreadyQuote;

  /**
   * 引用被评对象目标周期ID
   */
  @ApiModelProperty("引用被评对象目标周期ID")
  private String quoteEvaObjTargetCycleId;

  /**
   * 冗余评价模板ID
   */
  @NotNull(message = "冗余评价模板ID不能为空")
  @ApiModelProperty("冗余评价模板ID")
  private String evaluationTemplateId;

  /**
   * 批次标识
   */
  @ApiModelProperty("批次标识")
  private String batchCode;

}
